// package_01/pages/file-pic-download-save/index.js
Page({

  /**
   * 页面的初始数据
   */
  data: {

  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },
  
  saveImageToAlbum() {
    wx.downloadFile({
      url: "https://picsum.photos/200/300",
      filePath: `${wx.env.USER_DATA_PATH}/test.jpg`,
      success: (res) => {
        // 申请保存到相册的权限
        wx.getSetting({
          success: (settingRes) => {
            if (!settingRes.authSetting["scope.writePhotosAlbum"]) {
              // 未授权，发起授权请求
              wx.authorize({
                scope: "scope.writePhotosAlbum",
                success: () => this.saveToAlbum(res.filePath),
                fail: () => wx.showToast({ title: "需授权才能保存图片", icon: "none" })
              });
            } else {
              // 已授权，直接保存
              this.saveToAlbum(res.filePath);
            }
          }
        });
      }
    });
  },
  
  // 实际保存图片到相册的方法
  saveToAlbum(filePath) {
    wx.saveImageToPhotosAlbum({
      filePath: filePath,
      success: () => wx.showToast({ title: "图片已保存到相册" }),
      fail: (err) => console.error("保存失败：", err)
    });
  },

  downloadApplyTable(){
    this.setData({
      isDownloading: true
    })
    let downloadTask = wx.downloadFile({
      url: "https://qcnl9ekng7y7.feishu.cn/wiki/GW62wzK0DiZrFvkVZB7cVJpPnqb", 
      success: (res) => {
        console.log(res);
        wx.showToast({
          title: '文件下载完成',
        })
        const tempFilePath = res.tempFilePath
        // 假设tempFilePath是上述下载得到的临时路径
          this.saveTempToPermanent(tempFilePath).then((savedFilePath) => {
            console.log('文件已保存至', savedFilePath);

            wx.openDocument({
              filePath: savedFilePath,
              showMenu: true, // 显示右上角菜单，允许转发、收藏等
              success: function () {
                console.log('打开文档成功');
              },
              fail: function (openErr) {
                console.error('打开文档失败:', openErr);
              }
          });
        }).catch((err) => {
            console.error('保存文件失败', err);
        });
      },
      fail: (error) => {
        console.log(error); 
      }
    });
    // 监听下载进度
    downloadTask.onProgressUpdate((res) => {
      console.log("资源总长度:", res.totalBytesExpectedToWrite);
      console.log("已下载:", res.totalBytesWritten);
      console.log("进度百分比:", res.progress);
      this.setData({
        progressValue: res.progress,
      })
    });
  },

  async saveTempToPermanent(tempPath) {
    let result = await new Promise((resolve, reject) => {
      wx.getFileSystemManager().saveFile({
        tempFilePath: tempPath,
        success: resolve,
        fail: reject
      });
    });
    return result.savedFilePath; // 返回保存后的正式路径
  },
})